package org.lds.hotkey.client.autoconfigure;

import org.lds.hotkey.client.autoconfigure.component.*;
import org.lds.hotkey.client.autoconfigure.controller.HealthController;
import org.lds.hotkey.client.autoconfigure.controller.ReceiveHotKeyController;
import org.lds.hotkey.client.autoconfigure.controller.TestController;
import org.lds.hotkey.client.autoconfigure.hotkey.receive.ReceiveHotKeyService;
import org.lds.hotkey.client.autoconfigure.hotkey.report.ReportService;
import org.lds.hotkey.client.autoconfigure.hotkey.report.WorkerService;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration(proxyBeanMethods = false)
public class HotKeyAutoConfiguration {

    @Bean
    public AppInstanceRegisterRunner appInstanceRegisterRunner() {
        return new AppInstanceRegisterRunner();
    }

    @Bean
    public GetAndWatchHotKeyRunner getAndWatchHotKeyRunner() {
        return new GetAndWatchHotKeyRunner();
    }

    @Bean
    public GetAndWatchRuleRunner getAndWatchRuleRunner() {
        return new GetAndWatchRuleRunner();
    }

    @Bean
    public GetAndWatchWorkerRunner getAndWatchWorkerRunner() {
        return new GetAndWatchWorkerRunner();
    }

    @Bean
    public ReportServiceStarterRunner reportServiceStarterRunner() {
        return new ReportServiceStarterRunner();
    }

    @Bean
    public ReportService reportService() {
        return new ReportService();
    }

    @Bean
    public WorkerService workerService() {
        return new WorkerService();
    }

    @Bean
    public ReceiveHotKeyService receiveHotKeyService() {
        return new ReceiveHotKeyService();
    }

    @Bean
    public ReceiveHotKeyController receiveHotKeyController() {
        return new ReceiveHotKeyController();
    }

    @Bean
    public TestController testController() {
        return new TestController();
    }

    @Bean
    public HealthController healthController() {
        return new HealthController();
    }

}
